home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* *)
- (* Amiga Oberon Library Module: ToolManager Date: 16-May-93 *)
- (* *)
- (* © 1992 by Martin Horneffer *)
- (* © 1993 by Stefan Becker (updated for ToolManager 2.1) *)
- (* *)
- (* This Module may freely be copied and distributed, as long as it is *)
- (* left unchanged and kept together with "toolmanager.library", *)
- (* © 1990-1993 Stefan Becker. *)
- (* *)
- (*-------------------------------------------------------------------------*)
-
- MODULE ToolManager;
-
- IMPORT u:Utility, Intuition, Exec;
-
- CONST
- Name * = "toolmanager.library";
- Version * = 3;
-
- CONST
-
- (* ToolManager Object Types *)
-
- typeExec * = 0;
- typeImage * = 1;
- typeSound * = 2;
- typeMenu * = 3;
- typeIcon * = 4;
- typeDock * = 5;
- typeAccess * = 6;
- types * = 7;
-
- (* ToolManager Object Properties (see Object.doc) *)
-
- (* Type: typeExec *)
- arguments * = u.user + 1;
- command * = u.user + 2; (* also used for typeSound *)
- currentDir * = u.user + 3;
- delay * = u.user + 4;
- execType * = u.user + 5;
- hotKey * = u.user + 6; (* also used for typeDock *)
- output * = u.user + 7;
- path * = u.user + 8;
- priority * = u.user + 9;
- pubScreen * = u.user + 10; (* also used for typeDock *)
- stack * = u.user + 11;
- toFront * = u.user + 12;
-
- (* Type: tyepImage *)
- file * = u.user + 257;
- data * = u.user + 258;
-
- (* Type: typeSound *)
- port * = u.user + 513;
-
- (* Type: typeMenu, typeIcon *)
- exec * = u.user + 769;
- sound * = u.user + 770;
-
- (* Type: typeIcon *)
- image * = u.user + 1025;
- showName * = u.user + 1026;
-
- (* Type: typeIcon, typeDock *)
- leftEdge * = u.user + 1281;
- topEdge * = u.user + 1282;
-
- (* Type: typeDock *)
- activated * = u.user + 1536;
- centered * = u.user + 1537;
- columns * = u.user + 1538;
- font * = u.user + 1539;
- frontMost * = u.user + 1540;
- menu * = u.user + 1541;
- pattern * = u.user + 1542;
- popup * = u.user + 1543;
- text * = u.user + 1544;
- title * = u.user + 1545;
- tool * = u.user + 1546;
- vertical * = u.user + 1547;
- backdrop * = u.user + 1548;
- sticky * = u.user + 1549;
-
- (* Type: typeAccess *)
- (* None defined yet... *)
-
- (* Types for execType *)
- cli * = 0;
- wb * = 1;
- arexx * = 2;
- dock * = 3;
- hotkey * = 4;
- network * = 5;
- hook * = 100;
-
- TYPE
-
- (* Data structures for storing image sequences (TMOBJTYPE_IMAGE/TMOP_Data) *)
- (* TMImageNode contains the data for ONE picture. Several nodes are joined *)
- (* into a single-linked chain via tmin_Next. *)
-
- ImageNodePtr * = UNTRACED POINTER TO ImageNode;
- ImageNode * = STRUCT
- next * : ImageNodePtr; (* pointer to next node *)
- data * : Exec.APTR; (* MEMF_CHIP memory!! *)
- END;
-
- (* TMImageData contains information about the image data, like sizes etc. *)
- (* You MUST initialize BOTH Image structures and they MUST BE identical *)
- (* except of the ImageData pointer. tmid_Normal.ImageData should point to *)
- (* an image data which shows the inactive state and tmid_Selected.ImageData *)
- (* should point to an image which shows the active state. *)
-
- ImageDataPtr * = UNTRACED POINTER TO ImageData;
- ImageData * = STRUCT
- normal * : Intuition.Image; (* inactive state *)
- selected * : Intuition.Image; (* active state *)
- data * : ImageNodePtr; (* chain of images *)
- END;
-
- VAR
- base * : Exec.LibraryPtr;
-
-
- PROCEDURE QuitToolManager*{base,-36} ();
-
- PROCEDURE AllocTMHandle*{base,-42} (): LONGINT;
-
- PROCEDURE FreeTMHandle*{base,-48} ( handle{8}: LONGINT);
-
- PROCEDURE CreateTMObjectTagList*{base,-54} ( handle{8}: LONGINT;
- name{9} : ARRAY OF CHAR;
- type{0} : LONGINT;
- tags{10} : ARRAY OF u.TagItem): BOOLEAN;
- PROCEDURE CreateTMObjectTags*{base,-54} ( handle{8}: LONGINT;
- name{9} : ARRAY OF CHAR;
- type{0} : LONGINT;
- tags{10}..: u.Tag): BOOLEAN;
-
- PROCEDURE DeleteTMObject*{base,-60} ( handle{8}: LONGINT;
- object{9}: ARRAY OF CHAR): BOOLEAN;
-
- PROCEDURE ChangeTMObjectTagList*{base,-66} ( handle{8}: LONGINT;
- object{9}: ARRAY OF CHAR;
- tags{10} : ARRAY OF u.TagItem ): BOOLEAN;
- PROCEDURE ChangeTMObjectTags*{base,-66} ( handle{8}: LONGINT;
- object{9}: ARRAY OF CHAR;
- tags{10}..: u.Tag ): BOOLEAN;
-
- BEGIN
- base := Exec.OpenLibrary( Name, Version);
- IF base=NIL THEN
- IF Intuition.DisplayAlert(0,"\x00\x64\x14missing toolmanager.library!\o\o",50) THEN END;
- HALT(20)
- END;
- CLOSE
- IF base # NIL THEN Exec.CloseLibrary(base) END;
- END ToolManager.
-